package cn.itcast.domain.cargo;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author zhou
 * @since 2021-01-29
 */
@TableName("co_packing_list")
public class PackingList implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 集装箱编号 主键，唯一
     */
    @TableId(value = "packing_list_id", type = IdType.ASSIGN_UUID)
    private String packingListId;

    /**
     * 报运单ID集合  从报运单表获取，对多个报运单生成的装箱单
     */
    private String exportIds;

    /**
     * 报运合同号 从报运单表获取合同号
     */
    private String exportNos;

    /**
     * 装箱时间  用户输入
     */
    private Date packingDate;

    /**
     * 总体积  自动计算，累加报运单每个商品的体积
     */
    private BigDecimal totalVolume;

    /**
     * 总净重  累加报运单每个商品的净重
     */
    private Double netWeights;

    /**
     * 总毛重  累加报运单每个商品的毛重
     */
    private BigDecimal grossWeights;

    /**
     * 唛头  输入
     */
    private String marks;

    /**
     * 描述
     */
    private String description;

    /**
     * 装箱费用  总毛重*520
     */
    private BigDecimal packingMoney;

    /**
     * 装箱时间  用户选择
     */
    private String packingTime;

    /**
     * 状态  0草稿    1已委托
     */
    private Integer state;

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    private String createBy;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    private String updateBy;

    /**
     * 冗余字段 装运港
     */
    private String shipmentPort;

    /**
     * 冗余字段 目的港
     */
    private String destinationPort;

    /**
     * 冗余字段 收货人
     */
    private String consignee;

    private String companyId;

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getCompanyId() {
        return companyId;
    }

    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }

    public Date getPackingDate() {
        return packingDate;
    }

    public void setPackingDate(Date packingDate) {
        this.packingDate = packingDate;
    }

    public String getPackingListId() {
        return packingListId;
    }

    public void setPackingListId(String packingListId) {
        this.packingListId = packingListId;
    }

    public String getExportIds() {
        return exportIds;
    }

    public void setExportIds(String exportIds) {
        this.exportIds = exportIds;
    }

    public String getExportNos() {
        return exportNos;
    }

    public void setExportNos(String exportNos) {
        this.exportNos = exportNos;
    }

    public BigDecimal getTotalVolume() {
        return totalVolume;
    }

    public void setTotalVolume(BigDecimal totalVolume) {
        this.totalVolume = totalVolume;
    }

    public Double getNetWeights() {
        return netWeights;
    }

    public void setNetWeights(Double netWeights) {
        this.netWeights = netWeights;
    }

    public BigDecimal getGrossWeights() {
        return grossWeights;
    }

    public void setGrossWeights(BigDecimal grossWeights) {
        this.grossWeights = grossWeights;
    }

    public String getMarks() {
        return marks;
    }

    public void setMarks(String marks) {
        this.marks = marks;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public BigDecimal getPackingMoney() {
        return packingMoney;
    }

    public void setPackingMoney(BigDecimal packingMoney) {
        this.packingMoney = packingMoney;
    }

    public String getPackingTime() {
        return packingTime;
    }

    public void setPackingTime(String packingTime) {
        this.packingTime = packingTime;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }



    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }


    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public String getShipmentPort() {
        return shipmentPort;
    }

    public void setShipmentPort(String shipmentPort) {
        this.shipmentPort = shipmentPort;
    }

    public String getDestinationPort() {
        return destinationPort;
    }

    public void setDestinationPort(String destinationPort) {
        this.destinationPort = destinationPort;
    }

    public String getConsignee() {
        return consignee;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }


    @Override
    public String toString() {
        return "PackingList{" +
                "packingListId='" + packingListId + '\'' +
                ", exportIds='" + exportIds + '\'' +
                ", exportNos='" + exportNos + '\'' +
                ", packingDate=" + packingDate +
                ", totalVolume=" + totalVolume +
                ", netWeights=" + netWeights +
                ", grossWeights=" + grossWeights +
                ", marks='" + marks + '\'' +
                ", description='" + description + '\'' +
                ", packingMoney=" + packingMoney +
                ", packingTime='" + packingTime + '\'' +
                ", state=" + state +
                ", createTime=" + createTime +
                ", createBy='" + createBy + '\'' +
                ", updateTime=" + updateTime +
                ", updateBy='" + updateBy + '\'' +
                ", shipmentPort='" + shipmentPort + '\'' +
                ", destinationPort='" + destinationPort + '\'' +
                ", consignee='" + consignee + '\'' +
                ", companyId='" + companyId + '\'' +
                '}';
    }
}
